#!/usr/bin/env python3
#################
# 引入所需的库
#################
import tkinter as tk
import tkinter.filedialog
import tkinter.messagebox
from pydocx import PyDocX
#######################
# 程序所需的事件
#######################
# 打开文件
def liulan1():
    e1_text.set(tkinter.filedialog.askopenfilename(filetypes=[('Word 文档','*.docx'),('全部文件','*.*')]))

# 另存为文件
def liulan2():
    e2_text.set(tkinter.filedialog.asksaveasfilename(filetypes=[('HTML 文件','*.html'),('全部文件','*.*')]))

# Docx 转 html
def wordtohtml():
    if e1_text.get == "" or e2_text.get() == "":
        tkinter.messagebox.showinfo(title="提示",message="没有填写需要转化的 docx 文件或转化后的 html 文件保存路径")
    else:
        html = PyDocX.to_html(e1_text.get())
        f = open(e2_text.get(), 'w', encoding="utf-8")
        f.write(html)
        f.close()
        tkinter.messagebox.showinfo(title="提示",message="转化成功")

# 显示“关于这个程序”窗口
def about_this_program():
    tkinter.messagebox.showinfo(title="关于这个程序",message="一个基于 Python3 的 tkinter 制作的 docx 转 html 小程序\n版本：1.0\n适用平台：Linux")

# 显示“提示”窗口
def helps():
    tkinter.messagebox.showinfo(title="提示", message="提示：\n无")

###################
# 创建并设置窗口
###################
window = tk.Tk()
window.title("Docx 转 html")
label1 = tk.Label(text="要转化的docx文件")
e1_text = tk.StringVar()
e2_text = tk.StringVar()
e1 = tk.Entry(window,textvariable=e1_text,show=None)
button1 = tk.Button(window,text="浏览",command=liulan1)
label2 = tk.Label(text="转化后保存的文件")
e2 = tk.Entry(window,textvariable=e2_text,show=None)
button2 = tk.Button(window,text="浏览",command=liulan2)
button3 = tk.Button(window,text="把docx文件转化为html文件",command=wordtohtml)
menu = tk.Menu(window) # 设置菜单栏
programmenu = tk.Menu(menu,tearoff=0) # 设置“程序”菜单栏
menu.add_cascade(label="程序",menu=programmenu)
programmenu.add_command(label="退出程序",command=window.quit) # 设置“退出程序”项
help = tk.Menu(menu,tearoff=0) # 设置“帮助”菜单栏
menu.add_cascade(label="帮助",menu=help)
help.add_command(label="小提示",command=helps) # 设置“小提示”项
help.add_separator() # 设置分界线
help.add_command(label="关于这个程序",command=about_this_program) # 设置“关于这个程序”项
window.config(menu=menu) # 显示菜单栏
label1.pack()
e1.pack()
button1.pack()
label2.pack()
e2.pack()
button2.pack()
button3.pack()
window.mainloop()